package org.example.todolist.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.example.todolist.entity.Task;

import java.util.ArrayList;

/**
 * 任务Mapper接口
 */
@Mapper
public interface TaskMapper {
    /**
     * 插入任务
     * @param task 任务对象
     * @return 影响的行数
     */
    int insert(Task task);

    /**
     * 根据ID查询任务
     * @param id 任务ID
     * @return 任务对象
     */
    Task selectById(Integer id);

    /**
     * 查询列表的所有任务
     * @param listId 列表ID
     * @return 任务集合
     */
    ArrayList<Task> selectByListId(Integer listId);

    /**
     * 更新任务
     * @param task 任务对象
     * @return 影响的行数
     */
    int update(Task task);

    /**
     * 删除任务
     * @param id 任务ID
     * @return 影响的行数
     */
    int deleteById(Integer id);

    /**
     * 根据列表ID删除所有任务
     * @param listId 列表ID
     * @return 影响的行数
     */
    int deleteByListId(Integer listId);

    /**
     * 更新任务状态
     * @param id 任务ID
     * @param status 任务状态
     * @return 影响的行数
     */
    int updateStatus(Integer id, Integer status);
}
